Since the advent of the integrated microprocessor circuit, computing technology has become more and more complex. In the not too distant past, processor circuits included a single processor with an accompanying memory that were electrically coupled to a data bus and control bus. Software applications running on such machines were relatively simple as compared to today's complex applications. In particular, the clock speeds at which such processor circuits operated were relatively slow, thereby limiting the size of the various applications that could be implemented thereon.
However, improvements in integrated circuit technology have resulted in an increase of processor speeds. At the same time, the size and complexity of the software applications that are implemented using the faster processors has also increased. However, computer chip manufacturers have been faced with new challenges to push the speeds of integrated circuits even higher. Specifically, problems of stray capacitance and other electrical properties of the conductors within integrated circuits make it difficult to route high frequency signals in high speed processor circuits.
One approach to increase the speed of computer systems in spite of the above problems is to employ parallel processing. This is to say that a number of processor circuits may operate simultaneously to process various aspects of a particular software application. Such systems may employ one or more shared memories to operate on data that is common to the various applications. To make such shared memories possible, computer systems may employ various networking components to shuttle data between one or more memory components to the multiple processor circuits, etc. A problem exists, however; when one or more of the networking components fail. Typically, upon the existence of such a failure, computer systems cease operation even though other parallel processing components are still capable of operation.